async function _showToast (msg = '', icon = 'none') {
  return new Promise (resolve => {
    uni.showToast({
      title: msg,
      icon,
      mask: true,
      success: () => {
        resolve()
      }
    })
  })
}

async function success (msg) {
  return await _showToast(msg, 'success')
}

async function warn (msg) {
  return await _showToast(msg, 'none')
}

async function info (msg) {
  return await _showToast(msg, 'none')
}

async function confirm (msg) {
  return new Promise ((resolve, reject) => {
    uni.showModal({
      title: '提示',
      content: msg,
      icon: 'none',
      mask: true,
      success: res => {
        if (res.confirm) {
          resolve()
          return
        }
        if (res.cancel) {
          reject()
        }
      }
    })
  })
}

function showLoading (msg) {
  uni.showLoading({
    title: msg || '加载中'
  })
}

function hideLoading () {
  uni.hideLoading()
}

export {
  success,
  warn,
  info,
  confirm,
  showLoading,
  hideLoading
}